package com.funong.matrix.biz.system.facade;

import cn.hutool.core.lang.tree.Tree;
import com.funong.matrix.biz.base.entity.SysDictEntity;
import com.funong.matrix.core.dto.QueryDTO;
import com.funong.matrix.core.dto.Result;

import java.util.List;

/**
 * @author : NaNa
 * @since : 2023-05-23 18:31
 **/
public interface SysDictFacade {
    /**
     * 条件查询
     *
     * @param queryDTO 查询条件
     * @return
     */
    Result queryDict(QueryDTO<SysDictEntity> queryDTO);

    /**
     * 根据ID查询
     *
     * @param id
     * @return
     */
    SysDictEntity getDictById(Integer id);

    /**
     * 新增
     *
     * @param sysDictEntity 新增对象
     * @return
     */
    SysDictEntity saveDict(SysDictEntity sysDictEntity);

    /**
     * 更新
     *
     * @param sysDictEntity 更新对象
     * @return
     */
    SysDictEntity updateDict(SysDictEntity sysDictEntity);

    /**
     * 删除
     *
     * @param idList 记录ID列表
     * @return
     */
    Boolean deleteDict(List<Integer> idList);

    /**
     * 根据父编码获取子项
     *
     * @param systemId   系统ID
     * @param parentCode 父编码
     * @return
     */
    List<SysDictEntity> getByParentCode(int systemId, String parentCode);

    /**
     * 下拉选择
     * @param systemId
     * @return
     */
    List<Tree<Integer>> querySelect(Integer systemId);
}
